
package com.dyzx.hbb.common.utils;

import com.alibaba.fastjson2.JSON;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;

import java.io.IOException;

/**
 * Servlet工具类
 */
public class ServletUtils {

    /**
     * 渲染字符串到客户端
     *
     * @param response 渲染对象
     * @param object 待渲染的对象
     */
    public static void renderString(HttpServletResponse response, Object object) {
        try {
            // 设置响应类型
            response.setContentType(MediaType.APPLICATION_JSON_VALUE);
            response.setCharacterEncoding("utf-8");
            
            // 将对象转换为JSON字符串并写入响应
            response.getWriter().print(JSON.toJSONString(object));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取请求参数中的字符串值
     *
     * @param value 参数值
     * @param defaultValue 默认值
     * @return 字符串值
     */
    public static String getParameterValue(String value, String defaultValue) {
        return value != null && !value.isEmpty() ? value : defaultValue;
    }

    /**
     * 获取请求参数中的整数值
     *
     * @param value 参数值
     * @param defaultValue 默认值
     * @return 整数值
     */
    public static Integer getParameterIntValue(String value, Integer defaultValue) {
        try {
            return value != null && !value.isEmpty() ? Integer.parseInt(value) : defaultValue;
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }

    /**
     * 获取请求参数中的长整数值
     *
     * @param value 参数值
     * @param defaultValue 默认值
     * @return 长整数值
     */
    public static Long getParameterLongValue(String value, Long defaultValue) {
        try {
            return value != null && !value.isEmpty() ? Long.parseLong(value) : defaultValue;
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }

    /**
     * 获取请求参数中的布尔值
     *
     * @param value 参数值
     * @param defaultValue 默认值
     * @return 布尔值
     */
    public static Boolean getParameterBooleanValue(String value, Boolean defaultValue) {
        return value != null && !value.isEmpty() ? Boolean.parseBoolean(value) : defaultValue;
    }
}